1. Field of the Invention
The present invention relates generally to Virtual Machine (VM) technology and, more particularly, to a method and system for processing isochronous (i.e., continuous and periodic) data packets in a guest memory of a VM using a virtual USB controller.
2. Background Art
In the past decade, capabilities of computer systems have increased significantly. Computer systems process large volumes of packet data including voice and video data. Typically, voice and video data comes in isochronous (live) mode in a form of a continuous stream of packets. Asynchronous Transfer Mode (ATM) is a type of packet switching that uses small packets (53 bytes) called “cells.” In an isochronous communication, ATM device gathers voice or video into small packets or cells and presents them to users over a network.
The ATM technology is particularly well suited for communications among computers over the Internet, because of the flexibility and recoverability provided by this packet-based approach. The ATM is a network based protocol that cannot be employed directly between a stand alone computer and a peripheral device.
The ATM limitations are solved by a conventional method of using ATM data communications via a Universal Serial Bus (USB) peripheral device. This arrangement increases transmission rate and flexibility of communications between a USB host and a peripheral. The USB is a technology established by a joint effort of various companies, resulting in an adopted standard set forth in Universal Serial Bus Specification, Revision 1.1, Sep. 23, 1998 and Revision 2.0, Apr. 27, 2000. The USB Specification is directed to improving a user-friendliness of various aspects of computers and peripheral devices, and to this end, governs many aspects of USB systems. In a USB system, peripheral devices are coupled to a host computer in a tiered-star topology over the USB bus.
The USB technology provides significant advantages to a computer system user, including the ability to connect up to 127 peripheral devices, in a “daisy-chain” tiered-star topology, to a single USB port on the host computer. USB systems also can easily integrate various functions such as data, voice, and video, into a system through a single serial-data transfer protocol, without reliance on add-on cards and availability of their associated main board slots.
However, the conventional USB systems do not meet the needs of virtualization. Virtualization allows running a number of Virtual Machines (VMs) on the same physical machine or processor. The physical machine (i.e., work station) can employ a USB device with USB end points operated by a conventional hardware-implemented USB controller of the physical machine. However, numerous VMs simultaneously running on the host operating system of the physical machine cannot use the same physical USB controller.
Accordingly, there is a need for a method and system for processing isochronous data packets in a guest memory of a VM using software emulation of a physical USB controller (i.e., virtual USB controllers).